unit fanaliselancamento;

{$mode objfpc}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ExtCtrls, StdCtrls, DBCtrls, DBGrids, Buttons;

type

  { TFormAnaliseLancamento }

  TFormAnaliseLancamento = class(TForm)
    ButtonSalvarRelatorio: TBitBtn;
    ButtonBuscarPodutor: TBitBtn;
    ButtonVisualizarRelatorio: TBitBtn;
    ButtonLocalizar: TBitBtn;
    ButtonInserir: TBitBtn;
    ButtonAlterar: TBitBtn;
    ButtonExcluir: TBitBtn;
    ButtonCancelar: TBitBtn;
    ButtonSalvar: TBitBtn;
    ButtonSair: TBitBtn;
    DBEdit1: TDBEdit;
    DBNomeProdutor: TDBEdit;
    DBNomeTecnico: TDBEdit;
    DBNumeroRegistro: TDBEdit;
    DBIDProdutor: TDBEdit;
    DBIDTecnico: TDBEdit;
    DBData: TDBEdit;
    DBValor: TDBEdit;
    DBGridAmostra: TDBGrid;
    DBNavigatorAmostra: TDBNavigator;
    DBNavigatorAnalise: TDBNavigator;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Panel1: TPanel;
    procedure ButtonSalvarRelatorioClick(Sender: TObject);
    procedure ButtonAlterarClick(Sender: TObject);
    procedure ButtonBuscarPodutorClick(Sender: TObject);
    procedure ButtonCancelarClick(Sender: TObject);
    procedure ButtonExcluirClick(Sender: TObject);
    procedure ButtonSalvarClick(Sender: TObject);
    procedure ButtonVisualizarRelatorioClick(Sender: TObject);
    procedure ButtonInserirClick(Sender: TObject);
    procedure ButtonLocalizarClick(Sender: TObject);
    procedure ButtonSairClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ControlaBotoes(Edicao: boolean);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  FormAnaliseLancamento: TFormAnaliseLancamento;

implementation

uses
  dmprincipal, dmrelatorio, dmanalise, dmlaboratorio, ucondicoesconsulta,
  dmcadastro, ucalculosclassificacao;

{ TFormAnaliseLancamento }

procedure TFormAnaliseLancamento.ButtonAlterarClick(Sender: TObject);
begin
  DataAnalise.AnaliseAlterar();
  ControlaBotoes(True);
end;

procedure TFormAnaliseLancamento.ButtonSalvarRelatorioClick(Sender: TObject);
begin
  DataRelatorio.SalvaPdf();
end;

procedure TFormAnaliseLancamento.ButtonBuscarPodutorClick(Sender: TObject);
var
  produtor: TDadosProdutor;
begin

  produtor := DataCadastro.ProdutorBusca();
  DBNomeProdutor.Text := produtor.nome_produtor;
  DBIDProdutor.Text := IntToStr(produtor.id_produtor);
end;

procedure TFormAnaliseLancamento.ButtonCancelarClick(Sender: TObject);
begin
  DataAnalise.AnaliseCancelar();
  ControlaBotoes(False);
end;

procedure TFormAnaliseLancamento.ButtonExcluirClick(Sender: TObject);
begin
  if (MessageDlg('Confirmação', 'Deseja excluir a análise cadastrada?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
  begin
    DataAnalise.AnaliseExcluir();
    ControlaBotoes(False);
  end;
end;

procedure TFormAnaliseLancamento.ButtonSalvarClick(Sender: TObject);
begin
  if ((DBNomeProdutor.Text <> '') and (DBNumeroRegistro.Text <> '') and
    (DBIDTecnico.Text <> '') and (DBNomeTecnico.Text <> '') and (DBData.Text <> '')) then
  begin
    DataAnalise.AnaliseFinalizar();
    ControlaBotoes(False);
  end
  else
  begin
    ShowMessage('Devem ser preenchidos os campos:' + LineEnding +
      'Nome do produtor,' + LineEnding + ' Id do produtor,' + LineEnding +
      ' Numero de registro,' + LineEnding + 'Data');
  end;
end;

procedure TFormAnaliseLancamento.ButtonVisualizarRelatorioClick(Sender: TObject);
begin
  DataRelatorio.MostraRelatorio();
end;

procedure TFormAnaliseLancamento.ButtonInserirClick(Sender: TObject);
begin
  ControlaBotoes(True);
  DataAnalise.AnaliseInserir();
  with  DataLaboratorio.ZQueryTecnico do
  begin
    Close();
    SQL.Clear;
    SQL.Add('SELECT * FROM tecnico as t, laboratorio as l');
    SQL.Add('WHERE t.id_tecnico=l.id_tecnico');
    Open();
  end;
  if (not DataLaboratorio.ZQueryTecnico.Active) then
  begin
    DataLaboratorio.ZQueryTecnico.Active := True;
  end;
  DBIDTecnico.Text := DataLaboratorio.ZQueryTecnico.FieldByName('id_tecnico').AsString;
  DBNomeTecnico.Text := DataLaboratorio.ZQueryTecnico.FieldByName('nome_tecnico').AsString;
end;

procedure TFormAnaliseLancamento.ButtonLocalizarClick(Sender: TObject);
begin
  DataAnalise.AnaliseBuscar();
  if (DataAnalise.ZQueryAmostra.Active = True) then
  begin
    ButtonVisualizarRelatorio.Enabled := True;
    ControlaBotoes(False);
  end;
end;

procedure TFormAnaliseLancamento.ButtonSairClick(Sender: TObject);
begin
  Close();
end;

procedure TFormAnaliseLancamento.FormCreate(Sender: TObject);
begin
  if (DataAnalise.ZQueryAmostra.Active = False) then
  begin
    ButtonVisualizarRelatorio.Enabled := False;
  end;
end;

procedure TFormAnaliseLancamento.ControlaBotoes(Edicao: boolean);
begin
  if Edicao then
  begin
    ButtonSalvar.Enabled := True;
    ButtonCancelar.Enabled := True;
    ButtonInserir.Enabled := False;
    ButtonExcluir.Enabled := False;
    ButtonAlterar.Enabled := False;
    ButtonLocalizar.Enabled := False;
    ButtonSair.Enabled := False;
    ButtonSalvarRelatorio.Enabled := False;
    ButtonVisualizarRelatorio.Enabled := False;
    DBNavigatorAmostra.Enabled := False;
    DBGridAmostra.ReadOnly := True;
  end
  else
  begin
    ButtonSalvar.Enabled := False;
    ButtonCancelar.Enabled := False;
    ButtonInserir.Enabled := True;
    ButtonLocalizar.Enabled := True;
    ButtonSair.Enabled := True;
    if (DataAnalise.ZQueryAnalise.RecordCount > 0) then
    begin
      ButtonSalvarRelatorio.Enabled := True;
      ButtonExcluir.Enabled := True;
      ButtonAlterar.Enabled := True;
      ButtonVisualizarRelatorio.Enabled := True;
      DBNavigatorAmostra.Enabled := True;
      DBGridAmostra.ReadOnly := False;
    end;
  end;
end;

initialization
  {$I fanaliselancamento.lrs}

end.
